#!/bin/bash
###############################################################################
# @用例ID: 20230527-111917-299079329
# @用例名称: test_strace
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"

tc_setup() {
    msg "this is tc_setup"
    # @预置条件: 检查openssl是否安装
    openssl version > /dev/null 2>&1
    assert_true [ $? -eq 0 ]
    # @预置条件: 检查python是否安装
    python --version > /dev/null 2>&1
    assert_true [ $? -eq 0 ]
    # @预置条件: 启动web服务器
    python -m http.server 8000 &
    # @预置条件: 等待服务启动
    sleep 2
    # @预置条件: 创建测试文件
    touch test.txt
    return 0
}

do_test() {
    msg "this is do_test"

    # @测试步骤:1: 使用openssl客户端进行SSL/TLS握手并传输数据
    # @预期结果:1: 成功握手并传输数据
    openssl s_client -connect localhost:8000 -quiet -state >> test.txt
    assert_true [ -s test.txt ]

    return 0
}

tc_teardown() {
    msg "this is tc_teardown"
    kill -9 $(lsof -i :8000)
    rm test.txt || return 1
    rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################
